<?php defined('BASEPATH') OR exit('No direct script access allowed');

class Permissao_lib {
	
	protected $CI;
	
	public function __construct()
	{
		// Carregando a library session
		$this->CI =& get_instance();
		
		$this->CI->load->model('Vinculo_Perfil_Menu_Model', 'vinculo');
		
		include_once 'app/enum/EnumTipoPerfil.php';
	}
	
	public function validaPermissaoRegistro($metodo, $classe){
		
		try {
			
			$idPerfil = decrypt(trim($this->CI->session->userdata('idPerfil')));
			
			$retorno = $this->CI->vinculo->validaPermissaoRegistro($idPerfil, $classe, $metodo);
			
			if (empty($retorno)){
				throw new Exception('Seu usuário não tem permissão para executar essa funcionalidade!');
			}
			
			return true;
			
		} catch (Exception $e) {
			throw $e;
		}
		
	}
	
	public function validaUsuarioPermissaoAcessarModulo($classe){
		try {
				
			$idPerfil = decrypt(trim($this->CI->session->userdata('idPerfil')));
			$tipoPerfil = decrypt(trim($this->CI->session->userdata('tipoPerfil')));
				
			$retorno = $this->CI->vinculo->validaUsuarioPermissaoAcessarModulo($idPerfil, $classe, $tipoPerfil);
				
			if (!$retorno){
				redirect("admin/erros/permissaoNegada");
			}
				
		} catch (Exception $e) {
			throw $e;
		}
	}
}